iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0

前言

實作一些常見的股票分析指標和演算法,例如移動平均線、相對強弱指標(RSI)等,機器人能夠根據這些指標分析股票的趨勢和表現。

實作

KD指標是一種技術分析指標,用於衡量股票的超買超賣狀態。它由三個主要的部分組成:K值、D值和J值。
在計算KD指標之前,需要先計算RSV值(Raw Stochastic Value)。RSV值的計算公式如下:
RSV = (今日收盤價 - N日內的最低價) / (N日內的最高價 - N日內的最低價) * 100
然後,可以使用以下公式來計算K值(快速隨機值)和D值(慢速隨機值):
K值 = 前一日的K值 * 2/3 + RSV * 1/3
D值 = 前一日的D值 * 2/3 + K值 * 1/3
根據計算後的K值和D值,可以計算J值(指標值):
J值 = 3 * K值 - 2 * D值
以下是使用Python計算KD指標的示例程式碼:

def calculate_kd(data, N):
    rsv_values = []
    k_values = []
    d_values = []
    j_values = []

    for i in range(len(data)):
        if i < N:
            rsv_values.append(0)
            k_values.append(0)
            d_values.append(0)
            j_values.append(0)
        else:
            highest_price = max(data[i - N:i + 1])
            lowest_price = min(data[i - N:i + 1])
            rsv = (data[i] - lowest_price) / (highest_price - lowest_price) * 100
            
            rsv_values.append(rsv)
            k_values.append(k_values[i - 1] * 2 / 3 + rsv * 1 / 3)
            d_values.append(d_values[i - 1] * 2 / 3 + k_values[i] * 1 / 3)
            j_values.append(3 * k_values[i] - 2 * d_values[i])
    
    return {'RSV': rsv_values, 'K': k_values, 'D': d_values, 'J': j_values}

# 使用臺積電近30天的收盤價資料作為計算依據
closing_prices = [535, 538, 540, 558, 550, 541, ...]

# 設定計算KD指標的N值為9
N = 9

# 計算KD指標
kd_values = calculate_kd(closing_prices, N)

# 列印計算結果
print(kd_values)

上一篇
Day 4: 實作股票查詢功能
下一篇
Day6:開發投資組合管理功能
系列文
30天打造理財機器人阿達.Mx.Ada30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言